<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>VueComponent</title>
    <script src="../js/vue.js"></script>
</head>
<body>
    <!-- 
        关于VueComponent：
            1.school组件本质是一个名为VueComponent的构造函数，且不是程序员定义的，是Vue.extend生成的。
            2.我们只需要写成<school/>或者<school></school>，Vue解析时会帮我们创建school组件的实例对象。
            即Vue帮助我们执行的：new VueComponent(options)。

            3.特别注意：每次调用Vue.extend，返回的都是一个全新的VueComponent。

            4.关于this的指向：
                1.在组件配置中：
                    data函数，methods中的函数，watch中的函数，computed中的函数 它们的this均是{VueComponent实例对象}。
                2.new Vue()配置中：
                    data函数，methods中的函数，watch中的函数，computed中的函数，它们的this均是{Vue实例对象}

            5.VueComponent的实例对象，以后简称vc(也可以称为：组件实例对象)
            Vue的实例对象，以后简称vm
     -->
    <div id="root">
        <school></school>
    </div>

    <script>
        //创建组件
        const school = Vue.extend({
            template:`
                <div>
                    <h2>学校名称：{{name}}</h2>    
                    <h2>学校地址：{{address}}</h2>
                    <hr>
                </div>
            `,
            data(){
                return {
                    name:'尚硅谷',
                    address:'上海'
                }
            },
        })

        new Vue({
            el:'#root',
            components:{
                school
            }
        })
    </script>
</body>
</html>